package com.devops.admin.service;

import com.aliyuncs.AcsRequest;
import com.aliyuncs.AcsResponse;
import com.aliyuncs.alidns.model.v20150109.*;
import com.devops.admin.model.DOSDomainRecord;
import com.devops.admin.model.TableResult;
import com.devops.admin.vo.*;

public interface AliyunReqResServer {
    <T extends AcsResponse> T getAcsResponse(AcsRequest<T> var1,String accountType);

    AddDomainRecordResponse addDomainRecord(DOSDomainRecord request);

    DeleteDomainRecordResponse deleteDomainRecord(DeleteDomainRecordRequestVo requestVo);

    UpdateDomainRecordResponse updateDomainRecord(DOSDomainRecord request);

    TableResult<DescribeDomainsResponse.Domain> getDomains(DescribeDomainsRequestVo requestVo, DOSPageVo pageVo);

    DescribeDomainInfoResponse getDomainInfo(DescribeDomainInfoRequestVo requestVo);

    TableResult<DescribeDomainLogsResponse.DomainLog> getDomainOperateLogs(DescribeDomainLogsRequestVo requestVo, DOSPageVo pageVo);

    TableResult<DescribeDomainRecordsResponse.Record> getDomainRecords(DOSDescribeDomainRecordsRequestVo requestVo, DOSPageVo pageVo);

    DescribeDomainRecordInfoResponse getDomainRecordInfo(DescribeDomainRecordInfoRequestVo requestVo);
}
